package kr.co.insoft.core.repository.eventchain;

import kr.co.insoft.core.model.callback.CallBackDataModel;
import kr.co.insoft.framework.exceptions.RepositoryException;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

public interface EventLogRepository {

	/**
	 * 무조건 새로운 Transaction을 생성하여 저장하도록 수행한다. 이 메소드의 Transaction은 서비스 레벨의
	 * Transaction과는 별개로 동작한다.
	 * 
	 * @param callBackDataModel
	 * @throws RepositoryException
	 */
	@Transactional(propagation = Propagation.REQUIRES_NEW)
	void createEventLog(CallBackDataModel callBackDataModel)
			throws RepositoryException;
}
